"""第41题：Py数(buhui)
题目描述：Py从小喜欢奇特的东西，而且天生对数字特别敏感，一次偶然的机会，他发现了一个有趣的四位数2992，
这个数，它的十进制数表示，其四位数字之和为2+9+9+2=22，它的十六进制数BB0，其四位数字之和也为22，
同时它的十二进制数表示1894，其四位数字之和也为22，啊哈，真是巧啊。
Py非常喜欢这种四位数，由于他的发现，所以这里我们命名其为Py数。
现在给你一个十进制4位数n，你来判断n是不是Py数，若是，则输出Yes，否则输出No。
如n=2992，则输出Yes； n = 9999，则输出No。示例：输入：n = 1234
输出：No"""

"""第42题：分拆素数和
题目描述：把一个偶数拆成两个不同素数的和，有几种拆法呢？
现在来考虑考虑这个问题，给你一个不超过10000的正的偶数n，
计算将该数拆成两个不同的素数之和的方法数，并输出。
如n=10，可以拆成3+7，只有这一种方法，因此输出1.示例：输入：n = 4
输出：0"""

#def main():
#    num=int(input("请输入一个不超过10000的正的偶数n: "))
#    way = 0
#    if num%2 == 0:
#        L = [2]
#        # 素数列表
#        for a in range(3, 10000):
#            flag = 1
#            for b in range(2, a):
#                if a % b == 0:
#                    flag = 0
#            if flag == 1:
#                L.append(a)
#        for i in L:
#            for j in L:
#                if i+j == num and i!=j:
#                    way+=1
#        print(int(way/2))
#    else:
#        print("wrong")
#main()
"""第43题：斐波那契数列
题目描述：斐波那契数列为1,1,2,3,5,8...。数列从第三项起满足，该项的数是其前面两个数之和。现在给你一个正整数n（n < 10000), 请你求出第n个斐波那契数取模20132013的值（斐波那契数列的编号从1开始）。
例如：
n=1, 则输出：1
n=4, 则输出：3
示例：输入：n = 2
输出：1"""
#num = int(input("请输入： "))
#L={1:1,2:1}
#for i in range(3,10000):
#    L[i]=L[i-1]+L[i-2]
#print(L[num])
"""第44题：超级楼梯
题目描述：有一楼梯共n级，刚开始时你在第一级，若每次只能跨上一级或二级，要走上第n级，共有多少种走法？ 
现在给你一个正整数n（0<n<40),请你输出不同的走法数。
如n=2,则输出1（你只有一种走法，走一步，从第一级到第二级）示例：输入：n = 2
输出：1"""
#import math
#step = int(input("请输入： "))
#way=0
#way1=0
#flag=0
#for a in range(0,step):
#    for b in range(0,step):
#        if a+2*b == step:
#            sum = a+b
#            way1 = math.comb(sum,a)
#            way+=way1
#print(way)
"""可以直接调用math.factorial求得阶乘
求组合数math.comb(n, k) 可供选择的项数，可供选择的可能性数量(xiao)
print(math.factorial(n)//(math.factorial(m)*math.factorial(n-m)))"""
"""第45题：砝码问题（不会，需要动态规划）
题目描述：有一组砝码，重量互不相等，分别为m1、m2、m3……mn；它们可取的最大数量分别为x1、x2、x3……xn。
现要用这些砝码去称物体的重量,问能称出多少种不同的重量。
现在给你两个正整数列表w和n， 列表w中的第i个元素w[i]表示第i个砝码的重量，列表n的第
i个元素n[i]表示砝码i的最大数量。i从0开始，请你输出不同重量的种数。
如：w=[1,2], n=[2,1], 则输出5（分析：共有五种重量：0,1,2,3,4）示例：输入：w = [1, 2]
n = [2, 1]
输出：5"""
#L=[]
#w=[1,2]
#n=[2,1]
#A=[]
#B=[]
#for i in range(1,len(w)+1):
#    for j in range(0,n[i-1]+1):
#        weight = w[i-1]*j
#        L.append(weight)
#print(L)
"""第46题：取石子游戏
题目描述：有两堆石子，数量任意，可以不同。游戏开始由两个人轮流取石子。游戏规定，每次有两种不同的取法，
一是可以在任意的一堆中取走任意多的石子；二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。
现在给出初始的两堆石子的数目a和b，如果轮到你先取，假设双方都采取最好的策略，问最后你是胜者还是败者。
如果你是胜者，输出Win,否则输出Loose。
例如，a=3,b=1, 则输出Win(你先在a中取一个，此时a=2，b=1,此时无论对方怎么取，你都能将所有石子都拿走).示例：输入：a = 2
b = 1
输出：Loose"""
"""第47题：杨辉三角
题目描述：还记得中学时候学过的杨辉三角吗？具体的定义这里不再描述，你可以参考以下的图形：
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
..............
先在给你一个正整数n，请你输出杨辉三角的前n层
注意：层数从1开始计数,每层数字之间用一个空格隔开，行尾不要有空格。
如n=2,则输出：
1
1 1示例：输入：n = 2
输出：1
1 1"""

"""row=int(input("请输入： "))
trangle = [['1'],['1','1']]

for i in range(3,row+1):#对从三开始的每一行
    tmp=['1']
    newRow = trangle[i - 2]
    for a in range(len(newRow)-1):
        tmp.append(str(int(newRow[a]) + int(newRow[a+ 1])))
    tmp.append('1')
    trangle.append(tmp)
for j in trangle:
    print(" ".join(j))"""

























"""第43题：斐波那契数列
题目描述：斐波那契数列为1,1,2,3,5,8...。数列从第三项起满足，该项的数是其前面两个数之和。现在给你一个正整数n（n < 10000), 请你求出第n个斐波那契数取模20132013的值（斐波那契数列的编号从1开始）。
例如：
n=1, 则输出：1
n=4, 则输出：3
示例：输入：n = 2
输出：1"""